/**
 * 项目名：五位一体化工安全信息平台
 * 日期：    2019-12-06 15:05:44
 * Copyright (c) 2015- joysuch-版权所有
 */

package com.joysuch.wwyt.bp.bean;

import cn.zlg.common.springmvc.validate.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.joysuch.wwyt.bp.bean.safetyworkcert.OperatorUserCertDto;
import com.joysuch.wwyt.core.bean.BaseAttachmentBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.List;

@Data
@ApiModel(value = "动火作业证")
public class BpWorkSafetyApplyFireAddBean implements java.io.Serializable {

    // columns START
    //分辨app还是web端:0 app;
    @ApiModelProperty(value = "分辨app还是web端:0 app")
    private Integer flag;

    //作业证id
    @ApiModelProperty(value = "作业证id")
    private Long id;

    // 作业证编号
    @ApiModelProperty(value = "作业证编号")
    private java.lang.String code;

    // 作业类型
    @ApiModelProperty(value = "作业类型")
    private java.lang.String type;

    // 作业级别
    @NotNull(field = "作业级别")
    @ApiModelProperty(value = "作业级别")
    private java.lang.Integer workLevel;

    // 作业开始时间
    @NotNull(field = "开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "作业开始时间")
    private java.util.Date startTime;

    // 作业结束时间
    @NotNull(field = "结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "作业结束时间")
    private java.util.Date endTime;

    // 申请日期
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "申请日期")
    private java.util.Date applyTime;

    // 申请单位
    @NotNull(field = "申请单位")
    @ApiModelProperty(value = "申请单位")
    private java.lang.Long applyDepartId;

    // 申请人
    @NotNull(field = "申请人")
    @ApiModelProperty(value = "申请人")
    private java.lang.Long applyUserId;

    // 动火方式
    // @NotNull(field = "动火方式")
    @ApiModelProperty(value = "动火方式")
    private List<Long> opFireMethodId;

    // 动火内容
    // @NotNull(field = "动火内容")
    @ApiModelProperty(value = "动火内容")
    private java.lang.String opFireContent;

    // 动火地点
    @ApiModelProperty(value = "动火地点")
    private java.lang.String locationCoords;

    // 所属风险区域
    // @NotNull(field = "风险区域")
    @ApiModelProperty(value = "所属风险区域")
    private java.lang.Long riskDistrictId;

    // 风险点
    // @NotNull(field = "风险点")
    @ApiModelProperty(value = "风险点")
    private java.lang.Long riskPointId;

    // 生产单位负责人
    // @NotNull(field = "生产单位负责人")
    @ApiModelProperty(value = "生产单位负责人")
    private java.lang.Long productionDepartResponsibleUserId;

    // 动火作业负责人
    // @NotNull(field = "动火作业负责人")
    @ApiModelProperty(value = "动火作业负责人")
    private java.lang.Long opFireJobResponsibleUserId;

    // 动火初审人
    // @NotNull(field = "动火初审人")
    @ApiModelProperty(value = "动火初审人")
    private java.lang.Long opFireFirstAuditUserId;

    // 监火人
    // @NotNull(field = "监火人")
    @ApiModelProperty(value = "监火人")
    private java.lang.String opFireMonitorUserId;

    // 实施安全教育人
    // @NotNull(field = "实施安全教育人")
    @ApiModelProperty(value = "实施安全教育人")
    private java.lang.String opFireEducationUserId;

    // 危害辨识
    @ApiModelProperty(value = "危害辨识")
    private java.lang.String dangerRecoganize;

    // 涉及的其他特殊行业
    @ApiModelProperty(value = "涉及的其他特殊作业")
    private List<Long> otherSpecialWorkId;

    // 编制人
    // @NotNull(field = "编制人")
    @ApiModelProperty(value = "编制人")
    private java.lang.Long editUserId;

    // 附件
    @ApiModelProperty(value = "附件")
    private BaseAttachmentBean attachment;

    @ApiModelProperty(value = "作业地点")
    private String jobSite;

    // 风险级别
    @ApiModelProperty(value = "风险级别")
    private Integer riskLevel;
//    // 操作人
//    // @NotEmpty
//    private List<String> people;

    // 安全措施
    @ApiModelProperty(value = "安全措施")
    private List<BpWorkSafetyApplyMethodAddBean> safetyMethods;

    // 2019年12月13日 申华要求添加字段
    // 是否需用电申请签单
    @ApiModelProperty(value = "是否需用电申请签单")
    private String needEletricityApplySheet;

    // 工具名称
    @ApiModelProperty(value = "工具名称")
    private String workToolName;

    // 2019年12月13日 申华要求添加字段 -- 结束
    // 2019年12月15日11:58
    // jha评估ID
    @ApiModelProperty(value = "jha评估ID")
    private Long jhaEvaluationId;

    // columns END
    //报警设置
    @ApiModelProperty(value = "报警设置")
    private String alarm;

    // 申请人证书ids
    @ApiModelProperty(value = "申请人证书ids")
    private List<Long> applyUserCertIds;

    // 生产单位负责人
    @ApiModelProperty(value = "生产单位负责人")
    private List<Long> productionDepartResponsibleUserCertIds;

    // 动火作业负责人
    @ApiModelProperty(value = "动火作业负责人")
    private List<Long> opFireJobResponsibleUserCertIds;

    // 动火初审人
    @ApiModelProperty(value = "动火初审人")
    private List<Long> opFireFirstAuditUserCertIds;

    // 监火人
    @ApiModelProperty(value = "监火人")
    private List<Long> opFireMonitorUserCertIds;

    // 实施安全教育人
    @ApiModelProperty(value = "实施安全教育人")
    private List<Long> opFireEducationUserCertIds;

    // 操作人
    @ApiModelProperty(value = "操作人")
    private List<OperatorUserCertDto> operatorUserCertDtos;

    // 编制人证书ids
    @ApiModelProperty(value = "编制人证书ids")
    private List<Long> editUserCertIds;

    //动火分析记录
    @ApiModelProperty(value = "动火分析记录")
    private List<BpWorkSafetyWebFileBean> webFileBeans;

    @ApiModelProperty(value = "作业证人员分类")
    private BpWorkSafetyPeopleTypeBean peopleTypeBean;
}
